package com.sihai.ehr.service;

import com.sihai.core.Limit;
import com.sihai.core.LimitedList;
import com.sihai.core.Sorter;
import com.sihai.ehr.model.biz.SalarySocialInsurance;
import com.sihai.ehr.model.biz.SalaryStatistics;

/**
 * 薪资统计服务
 * 
 * @author henry
 * 
 */
public interface SalaryStatisticService {
	/**
	 * 根据统计结果编号获取社保信息
	 * 
	 * @param id
	 * @return
	 */
	SalaryStatistics get(Long id);

	/**
	 * 根据员工任职编号获取员工薪资统计信息
	 * 
	 * @param workId
	 *            任职编号
	 * @param year
	 *            年
	 * @param month
	 *            月
	 * @return
	 */
	SalaryStatistics get(Long workId, int year, int month);

	/**
	 * 根据员工任职编号获取员工薪资统计信息列表
	 * 
	 * @param workId
	 * @return
	 */
	LimitedList<SalaryStatistics> getSalaryStatisticByWorkId(Long workId,Limit limit,
			Sorter sorter);

	/**
	 * 保存统计信息
	 * 
	 * @param salaryStatistics
	 */
	void save(SalaryStatistics salaryStatistics);

	/**
	 * 删除统计信息
	 * 
	 * @param ids
	 */
	void deleteSalaryStatistics(String ids);

	/**
	 * 删除薪资统计项目细节
	 * 
	 * @param insuranceId
	 */
	void deleteSalaryStatisticDetails(Long statisticId);

	/**
	 * 查询薪资统计结果信息
	 * 
	 * @param year
	 * @param month
	 * @param organizationId
	 * @param dutyId
	 * @param workId
	 * @param limit
	 * @param sorter
	 * @return
	 */
	LimitedList<SalaryStatistics> find(int year, int month,
			Long organizationId, Long dutyId, Long workId, Limit limit,
			Sorter sorter);
}
